package com.xiaoye.qbproject.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import javax.validation.constraints.Max;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 兵力编程编组
 *
 * @TableName BLBC_TROOPS
 */
@TableName(value = "BLBC_TROOPS")
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class BlbcTroops implements Serializable {
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     */
    @TableField(value = "ID")
    private String id;
    /**
     * 上级部队ID
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @TableField(value = "PARENT_ID", updateStrategy = FieldStrategy.IGNORED)
    private String parentId;
    /**
     * 队徽
     */
    @TableField(value = "AVATAR")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String avatar;
    /**
     * 部队名称
     */
    @TableField(value = "TROOPS_NAME")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String troopsName;
    /**
     * 部队名称(外文)
     */
    @TableField(value = "TROOPS_NAME_EN")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String troopsNameEn;
    /**
     * 简称
     */
    @TableField(value = "ABBREVIATION")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String abbreviation;
    /**
     * 类型
     */
    @TableField(value = "TROOPS_STYLE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String troopsStyle;
    /**
     * 别名
     */
    @TableField(value = "ALIAS")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String alias;
    /**
     * 简介(外)
     */
    @TableField(value = "SUMMARY_EN")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String summaryEn;
    /**
     * 简介
     */
    @TableField(value = "SUMMARY")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String summary;
    /**
     * 规模(人数)
     */
    @TableField(value = "SCALE",updateStrategy = FieldStrategy.IGNORED)
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @Max(value = 999999999, message = "规模不能超过9位数字")
    private Integer scale;
    /**
     * 军种
     */
    @TableField(value = "MILITARY_SERVICE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String militaryService;
    /**
     * 常驻地(英)
     */
    @TableField(value = "DOMICILE_EN")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String domicileEn;
    /**
     * 常住地
     */
    @TableField(value = "DOMICILE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String domicile;
    /**
     * 国家ID
     */
    @TableField(value = "COUNTRY_ID")
    private String countryId;
    /**
     * 成立年份
     */
    @TableField(value = "FORM_YEAR")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String formYear;
    /**
     * 参与战争(多个使用逗号分割)
     */
    @TableField(value = "TAKE_PART_BATTLE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String takePartBattle;
    /**
     * 数据来源链接
     */
    @TableField(value = "SOURCE_LINKS")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String sourceLinks;
    /**
     * 官方链接
     */
    @TableField(value = "OFFICE_LINK")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String officeLink;
    /**
     * 百科链接
     */
    @TableField(value = "PEDIA_LINK")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String pediaLink;
    /**
     * facebook信息
     */
    @TableField(value = "FACEBOOK")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String facebook;
    /**
     * twitter信息
     */
    @TableField(value = "TWITTER")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String twitter;
    /**
     * instagram信息
     */
    @TableField(value = "INSTAGRAM")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String instagram;
    /**
     * youtube信息
     */
    @TableField(value = "YOUTUBE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String youtube;
    /**
     * rutube信息
     */
    @TableField(value = "RUTUBE")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String rutube;
    /**
     * vk信息
     */
    @TableField(value = "VK")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String vk;
    /**
     * ok_ru信息
     */
    @TableField(value = "OK_RU")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String okRu;
    /**
     * linkedin信息
     */
    @TableField(value = "LINKEDIN")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String linkedin;
    /**
     * flickr信息
     */
    @TableField(value = "FLICKR")
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private String flickr;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    @TableField(exist = false)
    private List<BlbcTroops> children;

}